// 数值的扩展

// 1. 新增方法

// Number.isFinite
console.log(Number.isFinite(20)); // true
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(-Infinity)); // false
console.log(Number.isFinite(NaN)); // false
console.log(Number.isFinite('abc')); // false
console.log(Number.isFinite('20')); // false
console.log(Number.isFinite(true)); // false
console.log(Number.isFinite(false)); // false

// Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(20)); // false
console.log(Number.isNaN(true)); // false
console.log(Number.isNaN(false)); // false
console.log(Number.isNaN('abc'/0)); // true

// Number.parseInt() 取整

console.log(Number.parseInt(12.34)); // 12
console.log(Number.parseInt(12.59)); // 12

// Number.parseFloat()
console.log(Number.parseFloat(12.34)); // 12.34

// Number.isInterger() 
console.log(Number.isInteger(20)); // true
console.log(Number.isInteger(20.2)); // false
console.log(Number.isInteger());    // false
console.log(Number.isInteger(true)); // false

// Number.MAX_SAFE_INTEGER

console.log(Math.pow(2, 53));
console.log(Math.pow(2, 53) + 1);
console.log(Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1); // true

// 2. Math 扩展

// Math.trunc

console.log(Math.trunc(13.37));    // 13
console.log(Math.trunc(42.84));   // 42

console.log(Math.trunc(true)); // 1
console.log(Math.trunc(false)); // 0

console.log(Number.parseInt(13.37)); // 13
console.log(Number.parseInt(42.84)); // 42

console.log(Number.parseInt(true)); // NaN
console.log(Number.parseInt(false)); // NaN

// Math.cbrt

console.log(Math.cbrt(8)) // 2
